Modern electronic printers are capable of producing complex page images which may include text, graphics and scanned or computer generated images. The image of a page is described as a collection of simple image components, or primitives (characters, lines, bitmaps or colors). Complex pages can then be built by specifying a large number of the basic image primitives. This is done by a page description language.
An electronic printer's software then receives, interprets, and draws each of the imaging primitives for the page. The drawing, or rasterization must be done on an internal, electronic model of the page. All image components must be collected and the final page must be assembled before marking can begin. This electronic model of the page is often constructed in a data structure called an image buffer. This is an array of color values called pixels. Each pixel corresponds to a spot which can be marked on the actual page and the pixel's value gives the color which should be used when marking. The pixels are organized to reflect the geometric relation of their corresponding spots. They are usually ordered to provide easy access in the raster pattern required for marking.
A quality color printer may have a full 8-bits of storage for each of the three or four color components (red, green, blue, or cyan, magenta, yellow, black). This means that each pixel requires 24 or 32 bits. In a color printer, it is more economical to limit the resolution of the image buffer (the number of pixels per inch) by the information content of the images rather than by the number of spots produced by the marking device. An 8-bit pixel value can specify 256 intensity levels. Because of the great deal of storage required, a split level image buffer is used to save the page image using two resolution levels. The high resolution level has four times as many samples per inch as the low resolution level. The high resolution sampling is used for regions where colors change rapidly, as across component edges. The split level image buffer can be pictured as a grid of low resolution blocks, with some blocks expanding into 4.times.4 cells of high resolution pixels. When marking occurs, the color value in a low resolution block can be replicated to give 16 values at the high resolution. This structuring of the image gives significant compression. The low resolution blocks specify only one sixteenth of the number of color values as the high resolution blocks.
U.S. patent application Ser. No. 07/797,876 entitled "Split Level Frame Buffer" describes a method to reduce the amount of memory required to construct a full color page image for printing. The method encodes the page images using two resolutions, a low resolution for object interiors and a high resolution for object edges. This patent application is herein incorporated by reference. It is also possible to provide efficient encodings of the high resolution areas for two color patterns, edges separating two colors and ordered regions of three colors. Line graphics and scan pictorial images can be expressed using these encodings resulting in a compression (or reduction of the memory requirements) of up to 16:1.
The split level image buffer is designed so that each block requires thirty-two bits of storage. For low resolution blocks, the thirty-two bits contain a color value. For blocks which expand to high resolution, the thirty-two bits contain an encoding. While some pixels contain color values, others, the high resolution blocks, contain special encodings which can be expanded into 4.times.4 cells of high resolution color values.